package com.back.service;

import com.back.entity.InterviewInvitationTemplate;
import com.back.dto.InvitationTemplateDTO;
import com.back.vo.InvitationTemplateVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 *  面试邀请模板服务接口
 * </p>
 *
 * @author liyang
 * @since 2025-04-26
 */
public interface IInterviewInvitationTemplateService extends IService<InterviewInvitationTemplate> {

    /**
     * 获取企业的模板列表
     * @param page 分页对象
     * @param companyId 企业ID
     * @return 分页模板列表
     */
    IPage<InvitationTemplateVO> getTemplateList(Page<InterviewInvitationTemplate> page, Long companyId);

    /**
     * 创建模板
     * @param templateDTO 模板信息
     * @param creatorId 创建者ID
     * @return 创建的模板信息
     */
    InvitationTemplateVO createTemplate(InvitationTemplateDTO templateDTO, Long creatorId);

    /**
     * 更新模板
     * @param id 模板ID
     * @param companyId 企业ID
     * @param templateDTO 模板信息
     * @return 更新后的模板信息
     */
    InvitationTemplateVO updateTemplate(Long id, Long companyId, InvitationTemplateDTO templateDTO);

    /**
     * 删除模板
     * @param id 模板ID
     * @param companyId 企业ID
     * @return 是否成功
     */
    boolean deleteTemplate(Long id, Long companyId);

    /**
     * 获取模板详情
     * @param id 模板ID
     * @param companyId 企业ID
     * @return 模板详情
     */
    InvitationTemplateVO getTemplateDetail(Long id, Long companyId);

    /**
     * 设置默认模板
     * @param id 模板ID
     * @param companyId 企业ID
     * @return 是否设置成功
     */
    boolean setDefaultTemplate(Long id, Long companyId);

    /**
     * 获取企业的默认模板
     * @param companyId 企业ID
     * @return 默认模板
     */
    InvitationTemplateVO getDefaultTemplate(Long companyId);
}
